//APP更新

export default function appUpdate() {
let platform = uni.getSystemInfoSync().platform;
	//if (platform == 'android') {
			if (platform == 'IOS') {
		uni.request({
			url: 'http://117.158.204.100:7000/opsli-boot/api/v1/appbusiness/two/upgradeProject', //检查更新的服务器地址
			  // url: 'http://192.168.1.193:7000/opsli-boot/api/v1/appbusiness/two/upgradeProject', //检查更新的服务器地址
			data: {
				appid: plus.runtime.appid, 
				version: plus.runtime.version,
				imei: plus.device.imei,
			}, 
			success: (res) => {
				plus.runtime.getProperty(plus.runtime.appid, function(wgtinfo) {
					let client_version = wgtinfo.version
					console.log(client_version);
					console.log(res.data.result.version)
					var flag_update = client_version.split(".").splice(0, 2).join(".") != res.data.result.version.split(".").splice(0, 2)
						.join(".")
					console.log(client_version.split(".")[2])
					var flag_hot = (Number(client_version.split(".")[2]) < Number(res.data.result.version.split(".")[2])) & !flag_update
					console.log(flag_hot)
		
					if (flag_update) {
						// 提醒用户更新
						uni.showModal({
							title: '更新提示',
							content: res.data.result.note,
							success: (showResult) => {
								if (showResult.confirm) {
									plus.nativeUI.toast("正在准备环境，请稍后!");
									console.log(res.data.result.url, )
									const dtask = plus.downloader.createDownload(res.data.result.url, {
										method: 'GET',
										filename: '_doc/update/'
									}, function(d, status) {
										if (status == 200) {
											var path = d.filename; //下载apk
											plus.runtime.install(path); // 自动安装apk文件
										} else {
											plus.nativeUI.alert('版本更新失败:' + status);
										}
									});
									try {
										dtask.start(); // 开启下载的任务
										var prg = 0;
										var showLoading = plus.nativeUI.showWaiting("正在下载");  //创建一个showWaiting对象 
											dtask.addEventListener('statechanged', function(
												task,
												status
											) {
												// 给下载任务设置一个监听 并根据状态  做操作
												switch (task.state) {
													case 1:
														showLoading.setTitle("正在下载");
														break;
													case 2:
														showLoading.setTitle("已连接到服务器");
														break;
													case 3:
														prg = parseInt(
														(parseFloat(task.downloadedSize) 
														/ parseFloat(task.totalSize)) * 100
																	);
														showLoading.setTitle("  正在下载" + prg + "%  ");
														break;
													case 4:
														plus.nativeUI.closeWaiting();
														//下载完成
														break;
												}
											});
										} catch (err) {
												plus.nativeUI.closeWaiting();
												uni.showToast({
													title: '更新失败-03',
													mask: false,
													duration: 1500
															});
														}
								}
							}
						})
					} else if (flag_hot) {
						uni.downloadFile({
							url: res.data.wgtUrl,
							success: (downloadResult) => {
								console.log(downloadResult.tempFilePath)
								if (downloadResult.statusCode === 200) {
									plus.nativeUI.toast(`正在热更新!${res.data.versionCode}`);
									plus.runtime.install(downloadResult.tempFilePath, {
										force: false
									}, function() {
										plus.nativeUI.toast("热更新成功");
										plus.runtime.restart();
									}, function(e) {
										console.log(e)
										plus.nativeUI.toast(`热更新失败:${e.message}`);
									});
								}
							}
						});
					}
				});
			}
		})
	}
}
